package edu.server.dominio;

import java.util.List;

import org.hibernate.Session;

import edu.server.repositorio.ModoEnvio;
import edu.server.util.HibernateUtil;

public class D_ModoEnvio {
	
	public D_ModoEnvio()
	{
		
	}
	
	@SuppressWarnings("unchecked")
	/**
	 * Método que busca en la base de datos todos los modos de envío por los que se puede enviar una orden de compra
	 * @return List<ModoEnvio>. Retorna una lista con todos los modos de envío.
	 */
	public List<ModoEnvio> buscarTodos()
	{
		List<ModoEnvio> modosEnvio;
		
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		
		session.beginTransaction();
		
		String hql = "FROM ModoEnvio ORDER BY descripcion";
		
		modosEnvio = session.createQuery(hql).list();
		
		session.close();
		
		return modosEnvio;
	}

	
	/**
	 * Método que busca en la base de datos en modo de envío que tiene la descripción pasada como parámetro
	 * @param descripcion. Descripción del modo de envío que se busca.
	 * @return ModoEnvio. Modo de envío con la descripción pasada como parámetro
	 */
	public ModoEnvio buscarPorDescripcion(String descripcion)
	{
		ModoEnvio modoEnvio;
		
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		
		session.beginTransaction();
		
		String hql = "from ModoEnvio " +
					 "where descripcion LIKE '" + descripcion + "'";
		
		modoEnvio = (ModoEnvio) session.createQuery(hql).uniqueResult();
		
		session.close();
		
		return modoEnvio;
	}
}
